package br.com.carrosvale.model.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import br.com.carrosvale.model.entity.UsuarioPF;
import br.com.carrosvale.model.entity.util.SenhaUtil;
import br.com.carrosvale.model.exceptions.AutenticacaoInvalidaException;
import br.com.carrosvale.model.persistence.UsuarioPFRepository;

@Service
@Transactional(rollbackFor=Exception.class)
public class LoginService {

	private UsuarioPFRepository usuarioPFRepository;

	public UsuarioPF validarLoginPF( String email, String senha ){
		
		UsuarioPF usuarioPF = usuarioPFRepository.buscarPorEmail(email);
		
		if( usuarioPF != null ){
			String senhaCriptografada = SenhaUtil.encripta(senha);
			
			if( usuarioPF.getSenha().equals(senhaCriptografada) ){
				return usuarioPF;
			}else{
				throw new AutenticacaoInvalidaException();
			}
		}
		else{
			throw new AutenticacaoInvalidaException();
		}
	}
	
	@Autowired
	public void setUsuarioPFRepository(UsuarioPFRepository usuarioPFRepository) {
		this.usuarioPFRepository = usuarioPFRepository;
	}
	
}
